/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jogo.da.velha;

/**
 *
 * @author Alcides Lopes
 */
public class Tabuleiro {
    private int[][] tabuleiro = new int[3][3];
    int jogador = 1;
    
    public Tabuleiro(){
        zeraTabuleiro();      
    }
    
    public void zeraTabuleiro(){
        
        for(int linha = 0; linha < 3; linha++)
        {
            for(int coluna = 0; coluna < 3; coluna++)
            {
                tabuleiro[linha][coluna] = 0;
            }
        }
    }
    
    
    
    public void atualizaTabuleiro()
    {
        for(int linha = 0; linha < 3; linha++)
        {
          for(int coluna = 0; coluna < 3; coluna++)
          {
              if(tabuleiro[linha][coluna] == 1)
              {
                  
                  System.out.print(" X ");
              }
              if(tabuleiro[linha][coluna] == -1)
              {
                  System.out.print(" O ");
              }
              if(tabuleiro[linha][coluna] == 0)
              {
                  System.out.print(" - ");
              }
          }
          System.out.println();
        }
    }

    public int getPosicao(int[] jogada) {
        
        return tabuleiro[jogada[0]][jogada[1]];
    }
    
    public void setPosicao(int[] jogada, int jogador){
        if(jogador == 1)
            tabuleiro[jogada[0]][jogada[1]] = 1;
        else
            tabuleiro[jogada[0]][jogada[1]] = -1;
        
        atualizaTabuleiro();
    }
    
    public int verificaLinhas() {
        
            //checa linhas
            if((tabuleiro[0][0] + tabuleiro[0][1] + tabuleiro[0][2]) == 3) {
                return 1;
            }
            if((tabuleiro[1][0] + tabuleiro[1][1] + tabuleiro[1][2]) == 3) {
                return 1;
            }
            if((tabuleiro[2][0] + tabuleiro[2][1] + tabuleiro[2][2]) == 3) {
                return 1;
            }
            if((tabuleiro[0][0] + tabuleiro[0][1] + tabuleiro[0][2]) == -3) {
                return -1;
            }
            if((tabuleiro[1][0] + tabuleiro[1][1] + tabuleiro[1][2]) == -3) {
                return -1;
            }
            if((tabuleiro[2][0] + tabuleiro[2][1] + tabuleiro[2][2]) == -3) {
                return -1;
            }
            return 0;
    }
            
    public int verificaColunas() {
            if((tabuleiro[0][0] + tabuleiro[1][0] + tabuleiro[2][0]) == 3) {
                return 1;
            }
            if((tabuleiro[0][1] + tabuleiro[1][1] + tabuleiro[2][1]) == 3) {
                return 1;
            }
            if((tabuleiro[0][2] + tabuleiro[1][2] + tabuleiro[2][2]) == 3) {
                return 1;
            }
            
            if((tabuleiro[0][0] + tabuleiro[1][0] + tabuleiro[2][0]) == -3) {
                return -1;
            }
            if((tabuleiro[0][1] + tabuleiro[1][1] + tabuleiro[2][1]) == -3) {
                return -1;
            }
            if((tabuleiro[0][2] + tabuleiro[1][2] + tabuleiro[2][2]) == -3) {
                return -1;
            }
            return 0;
    } 
    
    public int verificaDiagonais() {
            //verifica diagonais
            if((tabuleiro[0][0] + tabuleiro[1][1] + tabuleiro[2][2]) == 3) {
                return 1;
            }
            if((tabuleiro[0][0] + tabuleiro[1][1] + tabuleiro[2][2]) == -3) {
                return -1;
            }
            
            if((tabuleiro[0][2] + tabuleiro[1][1] + tabuleiro[2][0]) == 3) {
                return 1;
            }
            if((tabuleiro[0][2] + tabuleiro[1][1] + tabuleiro[2][0]) == -3) {
                return -1;
            }
            
            return 0;
    }
    public int verificaEmpate(){
        for(int i = 0; i < 3; i++)
            for(int j = 0; j < 3; j++)
                if(tabuleiro[i][j] == 0)
                    return 0;
        return 2;
    }    
            
    
}
